/**
 * 判断source是否是target的实例
 * 则通过判断source的__proto__属性是否指向target的原型，逐级往上查找
 * @param {*} source 
 * @param {*} target 
 * @returns 
 */
function _instanceof(source, target) {
  while(true) {
    if(source === null) {
      return false;
    }
    if(source.__proto__ === target.prototype) {
      return true;
    }
    source = source.__proto__;
  }
}